﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Spanner
{
    public abstract class Model
    {
        public string Name { get; internal set; }
        public Model[] ModelDependencies { get; internal set; }
        internal bool IsLibraryModel;
        internal bool IsTemplateModel;
            // If NonSpannerImplementationJS is NOT null, then this must be a
            // global model with no InitAct or Html.  The NonSpannerImplementation
            // code must be accessed in other models via JSExpr or JSAct.
        internal string NonSpannerImplementationJS; // For third party code, etc.
        internal string NonSpannerJSUrl; // For third party code, etc.
        internal Html Html;
        internal IVar InitParam;
        internal Act InitAct; // Parametric in InitParam.
    }
}
